$(function () {
  // 引入弹层组件
  let layer = layui.layer;

  $('#go-register').on('click', function () {
    $('#login-list').hide()
    $('#register-list').show()
  })
  $('#go-login').on('click', function () {
    $('#login-list').show()
    $('#register-list').hide()
  })

  // 表单验证
  let form = layui.form;
  form.verify({
    username: function (value, item) { //value：表单的值、item：表单的DOM对象
      if (!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)) {
        return '用户名不能有特殊字符';
      }
      if (/(^\_)|(\__)|(\_+$)/.test(value)) {
        return '用户名首尾不能出现下划线\'_\'';
      }
      if (/^\d+\d+\d$/.test(value)) {
        return '用户名不能全为数字';
      }
      //如果不想自动弹出默认提示框，可以直接返回 true，这时你可以通过其他任意方式提示（v2.5.7 新增）
      if (value === 'xxx') {
        alert('用户名不能为敏感词');
        return true;
      }
    },
    pass: [/^[\S]{6,12}$/, '密码必须6到12位，且不能出现空格'],
    regpass: function (value) {
      let pass = $('#register-list .password-input').val()
      if (value != pass) {
        return '俩次密码不一致'
      }
    }
  });

  // 注册功能
  $('#register-list').on('submit', function (e) {
    e.preventDefault()
    let username = $('#register-list .username-input').val()
    let password = $('#register-list .password-input').val()
    $.ajax({
      type: "post",
      url: "/api/reguser",
      data: {
        username,
        password
      },
      success: function (res) {
        if (res.status == 0) {
          layer.msg('注册成功', function (e) {
            $('#go-login').click()
          })
        }
      }
    })
  })

  // 登录功能
  $('#login-list').on('submit', function (e) {
    e.preventDefault()
    let username = $('#login-list .username-input').val()
    let password = $('#login-list .password-input').val()
    $.ajax({
      type: "post",
      url: "/api/login",
      data: {
        username,
        password
      },
      success: function (res) {
        if (res.status == 0) {
          layer.msg('登录成功', {
            time: 500
          }, function (e) {
            location.href = '/index.html'
            localStorage.setItem('token', res.token)
          })
        } else {
          layer.msg(res.message)
        }
      }
    })
  })

})
